"""
Utility package for DAT-SNet
"""
from .logger import (
    TrainingLogger,
    ResultsLogger
)

from .metrics import (
    calculate_overall_metrics,
    calculate_per_class_metrics,
    calculate_confusion_matrix,
    evaluate_model,
    generate_evaluation_report,
    print_evaluation_report
)

from .visualization import (
    plot_eeg_signal,
    plot_sleep_stages,
    plot_confusion_matrix,
    plot_frequency_bands,
    plot_wavelet_transform,
    visualize_attention_weights,
    visualize_se_weights,
    visualize_training_history,
    visualize_feature_maps,
    visualize_hypnogram_comparison,
    visualize_class_distribution,
    visualize_model_performance_by_stage,
    visualize_temporal_vs_spectral_features,
    visualize_model_comparison,
    plot_feature_importance,
    plot_learning_rate_finder,
    plot_stage_transition_matrix
)

__all__ = [
    'TrainingLogger',
    'ResultsLogger',
    'calculate_overall_metrics',
    'calculate_per_class_metrics',
    'calculate_confusion_matrix',
    'evaluate_model',
    'generate_evaluation_report',
    'print_evaluation_report',
    'plot_eeg_signal',
    'plot_sleep_stages',
    'plot_confusion_matrix',
    'plot_frequency_bands',
    'plot_wavelet_transform',
    'visualize_attention_weights',
    'visualize_se_weights',
    'visualize_training_history',
    'visualize_feature_maps',
    'visualize_hypnogram_comparison',
    'visualize_class_distribution',
    'visualize_model_performance_by_stage',
    'visualize_temporal_vs_spectral_features',
    'visualize_model_comparison',
    'plot_feature_importance',
    'plot_learning_rate_finder',
    'plot_stage_transition_matrix'
]